1
La voie vers des noyaux haute performance
AI023Lesson 2
00:00

Le parcours vers des noyaux haute performance commence par le passage de orienté opérations programmation (PyTorch Eager) vers conscient du matériel programmation. Triton constitue le pont essentiel sur cette voie.

1. Définition de la pile

Triton est un langage et un compilateur pour la programmation parallèle, conçu pour rendre possible l'écriture de noyaux de calcul personnalisés haute performance en syntaxe Python. Il occupe une position unique entre les deux extrêmes :

  • PyTorch Eager : Haute abstraction, facile à utiliser, mais contrôle limité de l'utilisation du matériel.
  • CUDA C++ : Contrôle maximal, mais grande complexité (gestion manuelle de la mémoire partagée et de la synchronisation).
  • Triton : Syntaxe Pythonique avec contrôle au niveau des blocs (en tuiles) contrôle.
PyTorch Eager (Haute abstration)Triton (Niveau bloc / Contrôlé par le compilateur)CUDA / Assembleur (Niveau bas)

2. Le paradigme en tuiles

Contrairement à CUDA, qui opère au niveau du thread, Triton utilise un modèle de programmation basé sur les blocs (en tuiles) de programmation. Ceci est particulièrement pertinent pour l'apprentissage profond où les données (matrices, cartes d'attention) sont naturellement structurées en blocs.

3. L'illusion de performance

Une erreur courante consiste à penser que Triton est simplement « PyTorch plus rapide ». En réalité, il s'agit d'un paradigme distinct. Les gains de performance proviennent de la capacité du développeur à éliminer les goulets d'étranglement (comme la « Mur de mémoire ») en fusionnant des opérations pour garder les données dans la mémoire SRAM rapide intégrée au processeur.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>